package com.yhcnet.utils;

import org.springframework.stereotype.Component;
import org.springframework.util.DigestUtils;

import java.util.HashSet;
import java.util.Locale;
import java.util.Set;

public class Utils {

    /**
     * md5 加密
     * @param bytes
     * @return
     */
    static public String md5(byte[] bytes) {
        return DigestUtils.md5DigestAsHex(bytes);
    }

    static public boolean isValidFileName(String fileName) {
        if (fileName == null || fileName.length() > 255) {return false;}
        return fileName.matches("([=~!@$^\\\\(\\\\);',\\\\]\\\\[\\\\}\\\\{\\\\+.a-zA-Z0-9-_ \\\\u4E00-\\\\u9FA5]){1,}");
    }

    /**
     * 判断文件类型
     * @param suffix
     * @return
     */
    // 1-图片 2-视频 3-音乐 4-文档 0-其他
    static public int type(String suffix) {
        suffix = suffix.toLowerCase(Locale.ROOT);

        Set<String> image = new HashSet<>();
        Set<String> music = new HashSet<>();
        Set<String> video = new HashSet<>();
        Set<String> doc = new HashSet<>();
        //图片后缀
        image.add("jpeg");
        image.add("jpg");
        image.add("png");
        image.add("psd");
        image.add("gif");

        music.add("mp3");

        video.add("mp4");
        video.add("avi");
        video.add("wmv");
        video.add("mpg");
        video.add("mpeg");
        video.add("mov");
        video.add("rm");
        video.add("ram");
        video.add("swf");
        video.add("flv");

        doc.add("txt");
        doc.add("pdf");
        doc.add("xlsx");
        doc.add("doc");
        doc.add("docx");
        doc.add("md");

        if (image.contains(suffix)) {return 1;}
        if (video.contains(suffix)) {return 2;}
        if (music.contains(suffix)) {return 3;}
        if (doc.contains(suffix)) {return 4;}

        return 0;
    }
}
